package com.example.warehouse.common.web;

import com.example.warehouse.common.ex.ServiceException;
import lombok.Data;

/**
 * @author 欧胤
 * @version 1.0
 * @description: TODO
 * @date 2023/6/15 10:46
 */
@Data
public class JsonResult {
    //响应的业务状态码值
    private Integer state;
    //表示"失败"时的描述文本
    private String message;
    //操作"成功"时的响应数据
    private Object data;

    public static JsonResult ok() {
        // JsonResult jsonResult = new JsonResult();
        // jsonResult.setState(ServiceCode.OK.getValue());
        // return jsonResult;
        return ok(null);
    }

    public static JsonResult ok(Object data) {
        JsonResult jsonResult = new JsonResult();
        jsonResult.setState(ServiceCode.OK.getValue());
        jsonResult.setData(data);
        return jsonResult;
    }
    public static JsonResult fail(ServiceException e) {
        /*JsonResult jsonResult = new JsonResult();
        jsonResult.setState(e.getServiceCode().getValue());
        jsonResult.setMessage(e.getMessage());
        return jsonResult;*/

        return fail(e.getServiceCode(),e.getMessage());
    }
    public static JsonResult fail(ServiceCode serviceCode,String message) {
        JsonResult jsonResult = new JsonResult();
        jsonResult.setState(serviceCode.getValue());
        jsonResult.setMessage(message);
        return jsonResult;
    }
}
